package com.lc.yygh.cmnclient;

import io.swagger.annotations.ApiParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
/*加上openFeign的注解作用就是把这个服务暴露出去，其他的服务(如医院服务)只要调用这个DictFeignClient接口就能间接调用数据库字典的服务*/

/*通过这个接口远程调用数据字典的微服务*/
@FeignClient(value = "service-cmn")//远程调用名字叫service-cmn的微服务，即数据字典微服务
public interface DictFeignClient {
    //提供方法，方法和要调用的服务中的接口保持一致 GetMapping的路径也要一致(注意把DictController的父路径也加上)
    @GetMapping(value = "/admin/cmn/dict/getName/{parentDictCode}/{value}")
    public String getName(
            @PathVariable("parentDictCode") String parentDictCode,
            @PathVariable("value") String value);

    @GetMapping(value = "/admin/cmn/dict/getName/{value}")
    public String getName(
            @PathVariable("value") String value);
}

/*医院服务通过DictFeignClient接口远程调用数据字典服务，其中，数据字典服务是不用做任何修改的，步骤：
* 1.医院服务和DictFeignClient接口所在的服务都要加上spring-cloud-starter-openfeign依赖，且医院要引入DictFeignClient接口所在的模块
* 2.DictFeignClient接口加@FeignClient(value = "service-cmn")注解，指定要调用的服务
* 3.医院的启动类加@EnableFeignClients(basePackages = "com.lc.yygh")
* 4.在医院服务的任何地方只要通过@Autowired注入DictFeignClient就能远程调用数据字典的服务*/
